//package com.finmax.trax.common.utils;
//
//import javax.servlet.ServletContext;
//import javax.servlet.ServletContextEvent;
//import javax.servlet.ServletContextListener;
//
//import org.apache.log4j.Logger;
//import org.springframework.web.context.WebApplicationContext;
//import org.springframework.web.context.support.WebApplicationContextUtils;
//
//import com.finmax.trax.trade.dtos.TradeHandOffDTO;
//import com.finmax.trax.trade.messageservices.TradeSender;
//import com.finmax.trax.trade.messageservices.impl.TradeSenderImpl;
//
///**
// * Servlet implementation class AppContextListener
// */
//public class AppContextListener implements ServletContextListener{
//	private static final long	serialVersionUID	= 1L;
//	static Logger				LOGGER				= Logger.getLogger( AppContextListener.class );
//
//	private ServletContext		context				= null;
//
//	TradeSender					tradeSender			= new TradeSenderImpl();
//
//	/**
//	 * @return the tradeSender
//	 */
//	public TradeSender getTradeSender () {
//
//		return tradeSender;
//	}
//
//	/**
//	 * @param tradeSender
//	 *            the tradeSender to set
//	 */
//	public void setTradeSender ( TradeSender tradeSender ) {
//		LOGGER.info( "********* Setting Trade at AppContextLister *********" );
//		this.tradeSender = tradeSender;
//	}
//
//	TraxTimer	ttimer	= new TraxTimer();
//
//	@Override
//	public void contextDestroyed ( ServletContextEvent event ) {
//		// TODO Auto-generated method stub
//		LOGGER.debug( "********* Trax Web Service has been removed. *********" );
//		this.context = null;
//	}
//
//	@Override
//	public void contextInitialized ( ServletContextEvent event ) {
//
//		try {
//
//			
//			WebApplicationContext springContext = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
//			
//			for ( int i = 0; i < springContext.getBeanDefinitionNames().length; i++ ) {
//
//				LOGGER.debug( "__ __ " + springContext.getBeanDefinitionNames()[i] );
//			}
//
//			this.context = event.getServletContext();
//			
//			tradeSender = (TradeSender) springContext.getBean( "tradeSender");
//			
//			LOGGER.debug( "********* Trax Web Service is started successfully *********" );
//			LOGGER.debug( "********* Context Name : " + context.getServletContextName().toString() );
//			LOGGER.debug( "********* Context Path : " + context.getContextPath().toString() );
//			LOGGER.debug( "********* Server Info : " + context.getServerInfo().toString() );
//
//			String handOffKey = "FLUSH";
//			LOGGER.info( "FLUSH Activated in AppContextListener ***********************" );
//			LOGGER.info( "START processTradeByHandOffKey " + "Handoffkey : " + handOffKey.trim() );
//
//			TradeHandOffDTO tradeHandOffDto = new TradeHandOffDTO();
//			tradeHandOffDto.setHandOffKey( handOffKey.trim() );
//
//			ttimer.Start();
//			tradeSender.sendTrade( tradeHandOffDto );
//			ttimer.Stop();
//
//			LOGGER.info( " END processTradeByHandOffKey " + "Handoffkey : " + handOffKey.trim() );
//			LOGGER.info( "Successfully FLUSHED Stale Trades    ***********************" );
//		} catch ( Exception e ) {
//			e.printStackTrace();
//		}
//	}
//
//}
